package kmp;


// bf写法2
public class Test02 {

    static int BF(String s1, String s2) {
        int i = 0;// 主串匹配的位置
        int j = 0;//模式串匹配的位置
        int len1 = s1.length();
        int len2 = s2.length();
        int tmp = 0;
        while (i != len1 && j != len2) {// 模式串和主串都么到达最后
            tmp = i;
            if (s1.charAt(i) == s2.charAt(j)) {
                // 如果两个字符匹配上了
                i++;
                j++;
            } else {
                // 没有匹配上的话 主串回溯到i+1 模式串回溯到0
                i = tmp +1;
                j = 0;
            }
        }
        // 跳出循环有两种情况
        if(i == len1){
            return -1;
        }else {
            return tmp;
        }
    }

    public static void main(String[] args) {
        String s1 = "EIFIFIABD";
        String s2 = "EI";
        int bf = BF(s1, s2);
        System.out.println(bf);
    }
}
